
import java.util.Vector;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Laurens
 */
public class characterList 
{
    public characterList()
    {
        
    }
    
    /**
     * This function has a list of all the special characterList in java
     * @return
     */
    public Vector<String> keywords()
    {
        Vector<String> keywords = new Vector<String>();
        keywords.add("String");
        keywords.add("String[]");
        keywords.add("String []");
        keywords.add("int");
        keywords.add("long");
        keywords.add("boolean");
        keywords.add("char");
        keywords.add("char[]");
        keywords.add("char []");
        keywords.add("void");
        keywords.add("short");
        keywords.add("Vector");
        keywords.add("Vector<String>");
        keywords.add("Vector<int>");
        keywords.add("Vector<Integer>");
        keywords.add("float");
        keywords.add("abstract");
        keywords.add("new");
        keywords.add("class");
        keywords.add("assert");
        keywords.add("for");
        keywords.add("false");
        keywords.add("true");
        keywords.add("break");
        keywords.add("byte");
        keywords.add("case");
        keywords.add("switch");
        keywords.add("catch");
        keywords.add("try");
        keywords.add("if");
        keywords.add("const");
        keywords.add("continue");
        keywords.add("default");
        keywords.add("do");
        keywords.add("while");
        keywords.add("do-while");
        keywords.add("this");
        keywords.add("double");
        keywords.add("else");
        keywords.add("enum");
        keywords.add("extends");
        keywords.add("interface");
        keywords.add("implements");
        keywords.add("final");
        keywords.add("finally");
        keywords.add("goto");
        keywords.add("import");
        keywords.add("package");
        keywords.add("static");
        keywords.add("instanceof");
        keywords.add("native");
        keywords.add("private");
        keywords.add("protected");
        keywords.add("public");
        keywords.add("strictfp");
        keywords.add("super");
        keywords.add("synchronized");
        keywords.add("throw");
        keywords.add("null");
        keywords.add("throws");
        keywords.add("transient");
        keywords.add("volatile");
        return keywords;
    } 
    
    /**
     * Returns a vector of characters to search for specific conditions
     * @return
     */
    public Vector<String> characterListMethod()
    {
        Vector<String> characterList = new Vector<String>();
        characterList.add("_");
        characterList.add(" ");
        characterList.add("-");
        characterList.add(".");
        characterList.add(",");
        characterList.add(";");
        characterList.add("+");
        characterList.add("-");
        characterList.add("[");
        characterList.add("]");
        characterList.add("<");
        characterList.add(">");
        characterList.add("==");
        characterList.add("{");
        characterList.add("<<");
        characterList.add(">>");
        characterList.add("<<<");
        characterList.add("%");
        characterList.add("*");
        characterList.add("&");
        characterList.add("&&");
        characterList.add("||");
        characterList.add("?");
        characterList.add(":");
        characterList.add("=");
        characterList.add("/=");
        characterList.add("+");
        characterList.add("//");
        characterList.add("(");
        characterList.add(")");
        //returns various characters of importance
        return characterList;
    }

    /**
     * Stores all alphabet values inside characterList vector
     * @return
     */
    public Vector<String> alphabet()
    {
        Vector<String> characterList = new Vector<String>();
        characterList.add("a");
        characterList.add("b");
        characterList.add("c");
        characterList.add("d");
        characterList.add("e");
        characterList.add("f");
        characterList.add("g");
        characterList.add("h");
        characterList.add("i");
        characterList.add("j");
        characterList.add("k");
        characterList.add("l");
        characterList.add("m");
        characterList.add("n");
        characterList.add("o");
        characterList.add("p");
        characterList.add("q");
        characterList.add("r");
        characterList.add("s");
        characterList.add("t");
        characterList.add("u");
        characterList.add("v");
        characterList.add("w");
        characterList.add("x");
        characterList.add("y");
        characterList.add("z");
        characterList.add("_");
        characterList.add("$");
        characterList.add("0");
        characterList.add("1");
        characterList.add("2");
        characterList.add("3");
        characterList.add("4");
        characterList.add("5");
        characterList.add("6");
        characterList.add("7");
        characterList.add("8");
        characterList.add("9");
        //returns all alphabetical letters
        return characterList;
    }
    
    /**
     * This function checks that newMethod is not a special keyword
     * @param newMethod
     * @param characterList
     * @return
     */
    public boolean checkKeywords(String value)
    {
        boolean check_Value = false;
        for(int i = 0; i < keywords().size(); i++)
        {
            if(value.equals(keywords().get(i)))
            {
                check_Value = true;
            }
        }
        return check_Value;
    }
    
    public boolean punctuationCheck(String input)
    {
        boolean result = false;
        for(int y = 1; y < characterListMethod().size(); y++)
        {
            if(input.contains(characterListMethod().get(y)))
            {
                result = true;
                return result;
            }
        }
        return result;
    }
    
    
}
